/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package presenter;

import boundary.AddClientesView;
import collection.CollectionCliente;
import entity.Cliente;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

/**
 *
 * @author jakson
 */
public class AddClientesPresenter {
        
    private AddClientesView view;
    
    public AddClientesPresenter(String editar,Cliente a) {
        
        view = new AddClientesView(null, true);
        
        
          if(editar.equals("editar")){
            
            view.setTitle("Editar Agência");
            carregarTelaEditar(a);
            view.getBtnSalvar().addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent ae) {
                   editar();
                }
            });
           
             
        }
          else{
               view.getBtnSalvar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                salvarCliente();
            }
        });
        
          }
        
       
        view.getBtnFechar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                fechar();
            }
        });
        
        view.getPessoaFisica().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                desmarcarCampos();
            }
        });
        
        view.getPessoaJuridica().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                desmarcarCamposJuridico();
            }
        });
        view.setLocationRelativeTo(view);
        view.setVisible(true);
    }
    
    
    
   private void fechar(){
       view.dispose();
       
      
   } 
   
    
   
    private void desmarcarCampos(){
        view.getPessoaJuridica().setSelected(false);
        view.getCampoCpf().setEnabled(true);
        view.getCampoDataNascimento().setEnabled(true);
        view.getCampoCnpj().setEnabled(false);
        view.getCampoDataAbertura().setEnabled(false);
    }
    
    private void desmarcarCamposJuridico(){
        
        view.getPessoaFisica().setSelected(false);
        view.getCampoCpf().setEnabled(false);
        view.getCampoDataNascimento().setEnabled(false);
        view.getCampoCnpj().setEnabled(true);
        view.getCampoDataAbertura().setEnabled(true);
    }
    
   private void limparCampos(){
        view.getCampoNome().setText("");
        view.getCampoUsuario().setText("");
        view.getCampoCnpj().setText("");
        view.getCampoCpf().setText("");
        view.getCampoDataAbertura().setText("");
        view.getCampoDataNascimento().setText("");
        view.getCampoEndereco().setText("");
   }     
        
    private void salvarCliente(){
        collection.CollectionCliente incluir = new CollectionCliente();
        if(view.getPessoaFisica().isSelected()==true){
            Cliente cli = new Cliente(view.getCampoNome().getText(),view.getCampoEndereco().getText(),
            view.getCampoUsuario().getText(),"Fisíca",view.getCampoCpf().getText(),view.getCampoDataNascimento().getText(),"Null","Null");
            incluir.incluirCliente(cli);
            JOptionPane.showMessageDialog(null, "CADASTRO REALIZADO COM SUCESSO");
            limparCampos();
        }else{
            
             Cliente cli = new Cliente(view.getCampoNome().getText(),view.getCampoEndereco().getText(),
            view.getCampoUsuario().getText(),"Jurídica","Null","Null",view.getCampoCnpj().getText(),view.getCampoDataAbertura().getText());
            incluir.incluirCliente(cli);
            JOptionPane.showMessageDialog(null, "CADASTRO REALIZADO COM SUCESSO");
               limparCampos();
        }
        
    }
    
    private void editar(){
         collection.CollectionCliente incluir = new CollectionCliente();
        if(view.getPessoaFisica().isSelected()==true){
            Cliente cli = new Cliente(view.getCampoNome().getText(),view.getCampoEndereco().getText(),
            view.getCampoUsuario().getText(),"Fisíca",view.getCampoCpf().getText(),view.getCampoDataNascimento().getText(),"Null","Null");
            incluir.editacao(cli);
            JOptionPane.showMessageDialog(null, "EDIÇÃO REALIZADA COM SUCESSO");
            limparCampos();
        }else{
            
             Cliente cli = new Cliente(view.getCampoNome().getText(),view.getCampoEndereco().getText(),
            view.getCampoUsuario().getText(),"Jurídica","Null","Null",view.getCampoCnpj().getText(),view.getCampoDataAbertura().getText());
            incluir.editacao(cli);
            JOptionPane.showMessageDialog(null, "EDIÇAO REALIZADA COM SUCESSO");
               limparCampos();
        }
        
        
    }
    private void carregarTelaEditar(Cliente a){
        
        view.getCampoDataAbertura().setText(a.getDataabertura());
        view.getCampoDataNascimento().setText(a.getDatanascimento());
        view.getCampoEndereco().setText(a.getEndereco());
        view.getCampoNome().setText(a.getNome());
        view.getCampoUsuario().setText(a.getUsuario());
        view.getCampoCnpj().setText(a.getCnpj());
        view.getCampoCpf().setText(a.getCpf());
    }
    
}
